package co.gov.medellin.ssti.sub.service;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;

import javax.naming.NamingException;

import co.gov.medellin.ssti.sub.common.ConexionFactory;
import co.gov.medellin.ssti.sub.model.dao.DAOFactory;
import co.gov.medellin.ssti.sub.model.dao.IReporteTotalComunaDAO;
import co.gov.medellin.ssti.sub.model.dao.exception.DAOException;
import co.gov.medellin.ssti.sub.model.vo.CondicionConsultaVO;
import co.gov.medellin.ssti.sub.model.vo.ReportComunaVO;
import co.gov.medellin.ssti.sub.model.vo.ReporteTotalComunaVO;

public class ReportTotalComunaService {
	public static final String TIPO_REPORTE_1 = "TIPO_REPORTE_1";
	public static final String TIPO_REPORTE_2 = "TIPO_REPORTE_2";

	public ReportTotalComunaService() {
	}

	public ReporteTotalComunaVO findFilters(
			ReporteTotalComunaVO reporteTotalComunaVO) throws DAOException {
		IReporteTotalComunaDAO reporteTotalComunaDAO = null;
		try {
			Connection con = ConexionFactory.getInstance().getConnection();
			reporteTotalComunaDAO = DAOFactory.getDAOFactory(DAOFactory.ORACLE)
					.getReporteTotalComunaDAO(con);
			return reporteTotalComunaDAO.findFilters(reporteTotalComunaVO);
		} catch (NamingException e) {
			throw new DAOException(e);
		} catch (SQLException e) {
			throw new DAOException(e);
		} finally {
			if (reporteTotalComunaDAO != null) {
				if (!reporteTotalComunaDAO.isConnClosed()) {
					reporteTotalComunaDAO.close();
				}
			}
		}

	}

	public Collection<ReportComunaVO> findBeneficiosBeneficiariosComuna(
			ReporteTotalComunaVO criteria,
			Collection<CondicionConsultaVO> filtros) throws DAOException {
		IReporteTotalComunaDAO reporteTotalComunaDAO = null;

		try {
			Connection con = ConexionFactory.getInstance().getConnection();
			reporteTotalComunaDAO = DAOFactory.getDAOFactory(DAOFactory.ORACLE)
					.getReporteTotalComunaDAO(con);
			return reporteTotalComunaDAO.findBeneficiosBeneficiariosComuna(
					criteria, filtros);
		} catch (NamingException e) {
			throw new DAOException(e);
		} catch (SQLException e) {
			throw new DAOException(e);
		} finally {
			if (reporteTotalComunaDAO != null) {
				if (!reporteTotalComunaDAO.isConnClosed()) {
					reporteTotalComunaDAO.close();
				}
			}
		}
	}
}
